package machine;

public interface InstructionFunctions {
	public enum InstructionName {
		LOAD, LOADA, LOADI, LOADL, STORE, STOREI, CALL, CALLI, RETURN, PUSH, POP, JUMP, JUMPI, JUMPIF, HALT;
	}
	
	void load(Instruction i);
	void loada(Instruction i);
	void loadi(Instruction i);
	void loadl(Instruction i);
	void store(Instruction i);
	void storei(Instruction i);
	void call(Instruction i);
	void calli(Instruction i);
	void return_(Instruction i);
	void push(Instruction i);
	void pop(Instruction i);
	void jump(Instruction i);
	void jumpi(Instruction i);	
	void jumpif(Instruction i);
	void halt();
}